package ai.people.core.webhook.feishu.msg;

import com.alibaba.fastjson.PropertyNamingStrategy;
import com.alibaba.fastjson.annotation.JSONType;
import lombok.Data;

import java.util.List;

/**
 * @author zhenglin
 * @date 2022/5/17
 */
@Data
@JSONType(naming = PropertyNamingStrategy.SnakeCase)
public class CardMsg extends BaseMsg {
    /**
     * 卡
     */
    private Card card;

    @Data
    @JSONType(naming = PropertyNamingStrategy.SnakeCase)
    public static class Card {
        /**
         * 卡片配置
         */
        private Config config;
        /**
         * 元素
         */
        private List<Elements> elements;
        /**
         * 头
         */
        private Header header;

        @Data
        @JSONType(naming = PropertyNamingStrategy.SnakeCase)
        public static class Config {
            /**
             * 是否允许卡片被转发。
             */
            private boolean enableForward = true;
            /**
             * 是否为共享卡片。
             */
            private boolean updateMulti = false;
        }

        @Data
        public static class Elements {
            private String tag;
            private Text text;

            @Data
            public static class Text {
                /**
                 * 内容
                 */
                private String content;
                /**
                 * 内容类型
                 */
                private String tag;

                /**
                 * 内容显示行数
                 */
                private Integer lines;
            }
        }

        @Data
        public static class Header {
            private Title title;
            private String template;

            @Data
            public static class Title {
                private String content;
                private String tag;
            }
        }
    }
}
